package cn.itsource.basic.service;

import cn.itsource.basic.domain.BaseDomain;
import cn.itsource.basic.query.BaseQuery;
import cn.itsource.basic.util.PageList;

import java.util.List;

public interface IBaseService<T extends BaseDomain, E extends BaseQuery> {

    /**
     * 根据id查询单条数据
     */
    T find(Long id);

    /**
     * 转换成分页集合
     */
    PageList<T> pageResult(List<T> list);

    /**
     * 保存当前数据  如果数据存在则修改,不存在则添加
     */
    boolean save(T model);

    /**
     * 根据id删除单条数据
     */
    boolean delete(Long id);

    /**
     * 根据id数据批量删除数据
     */
    boolean batchDelete(Long[] ids);

    List<T> queryAll();
}
